/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package exception;

import javax.ejb.EJBAccessException;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;

/**
 *
 * @author carlos
 */
public class ExceptionInterceptor {

  @AroundInvoke
  public Object interceptador(InvocationContext ic) throws Exception {
    try {
      return ic.proceed();
    } catch (EJBAccessException e) {
      FacesMessage message = new FacesMessage(
        FacesMessage.SEVERITY_ERROR,
        "Usuário não tem permissão suficiente. A operação não será executada.",
        "Usuário não tem permissão suficiente. A operação não será executada.");
      FacesContext.getCurrentInstance().addMessage(null, message);
      return null;
    } catch (Exception e) {
      FacesMessage message = new FacesMessage(
        FacesMessage.SEVERITY_ERROR,
        e.getMessage(),
        e.getMessage());
      FacesContext.getCurrentInstance().addMessage(null, message);
      return null;
    }
  }
}
